#include "gui.h"

//Ces variables globales sont mises ici parce que de toute facon,
//GUI_init doit etre le premier a leur coller une valeur
GtkWidget* fenetre=NULL;
GtkWidget* fenetre_vbox=NULL;
GtkWidget* debug_label=NULL;
GtkWidget* container_monde=NULL;
//la ou doit insérer un widget pour la vue aéroport
GtkWidget* container_aeroport=NULL;
gboolean gui_started=FALSE;
char _settings[MAX_SETTINGS][2][MAX_SETTING_LENGTH];
int _nb_settings=0;


//remarque : ces variables/objets gtk sont/seront codés par Jonathan
//modes (boutons toggle & possibilités clic)
//mis à 0 normalement
gboolean mode_deplacement;
gboolean mode_selection;
gboolean mode_zoom;
GtkWidget* bouton_zoom;
GtkWidget* bouton_selection;
GtkWidget* bouton_deplacer;


int GUI_init(int* argc,char*** argv)
{
	GladeXML *xml;
	int success;
	//init gtk
	gtk_init(argc, argv);

	success = set_settings_file(SETTINGS_FILENAME);
	if(!success)
	{
		msg("GUI_init:je ne peux travailler sans %s\n",SETTINGS_FILENAME);
	}
	//chargement xml
	xml = glade_xml_new(get_setting("glade"), NULL, NULL);
	if(!xml)
	{
		//message d'erreur de GTK automatique ici
		exit(0);
	}
	/* connect the signals in the interface */
	glade_xml_signal_autoconnect(xml);

	//fenetre principale
	fenetre = glade_xml_get_widget(xml,"fenetre");

	//container des deux vues
	container_monde = glade_xml_get_widget(xml,"container_monde");
	//LA VUE AEROPORT : widget où insérer qqch grâce à gtk_container_add
	container_aeroport = glade_xml_get_widget(xml,"container_aeroport");
	//je mémorise la position mémoire de ces boutons par des pointeurs parce que j'en avais besoin pour la vue monde
	//je laisse ça juste pour que tu puisses voir comment on peut prendre l'adresse mémoire d'un widget chargé depuis un fichier glade
	bouton_zoom = glade_xml_get_widget(xml,"outil_zoomer");
	bouton_selection = glade_xml_get_widget(xml,"outil_selection");
	bouton_deplacer = glade_xml_get_widget(xml,"outil_decaler");
	

	//gtk_container_add(GTK_CONTAINER(container_aeroport),un_widget); //ligne intéressante => on insère un widget dans le container (la page) aéroport des onglets

	//label de debuggage, ca fait que quand on fait msg(parametres texte comme si c'etait un printf), et que
	//DEBUG et USE_GUI sont définis dans compile_opts.h , ca s'affiche les parametres passés à msg() dans ce label
	//on n'aura plus qu'a desactiver la constante DEBUG a la fin du projet
	#if defined DEBUG && defined USE_GUI
	fenetre_vbox = glade_xml_get_widget(xml,"fenetre_vbox");
	debug_label = gtk_label_new("");
	gtk_box_pack_start(GTK_BOX(fenetre_vbox),debug_label,FALSE,TRUE,0);
	#endif
	gtk_window_maximize(GTK_WINDOW(fenetre));
	gtk_widget_show_all(fenetre);

	/* start the event loop */
	gui_started = TRUE;
	gtk_main();
	return 1;
}